home *** CD-ROM | disk | FTP | other *** search
/ Apple II Magazines (DO) / Softdisk Magazette Volume 2, No. 03 (1982-11)(Softdisk)(Side B).zip / Softdisk Magazette Volume 2, No. 03 (1982-11)(Softdisk)(Side B).do / HI-RES SOLAR SYSTEM SIMULATOR.bas < prev    next >
BASIC Source File  |  1996-12-24  |  7KB  |  208 lines

  1. 30  REM  *   SOLAR SYSTEM   *
  2. 31  REM  *     SIMULATOR    * 
  3. 85  GOTO 1000
  4. 90  REM  (100-110) PLOT X AND Y VALUES
  5. 100  HPLOT X,Y
  6. 110  RETURN 
  7. 150  REM  (200-300) CALCULATE THE X AND Y PLANET POSITIONS
  8. 200 D = Z - INT(Z/SRD) *SRD
  9. 205  REM  D IS FOR DAYS
  10. 210 B = Q -(D/SRD *Q2)
  11. 220 RV = A -(P/(1 +E * COS(B)))
  12. 225  REM  RV IS THE RADIUS VECTOR OR DISTANCE FROM THE SUN TO THE PLANET
  13. 230 V = PE/RV -EZ
  14. 240  IF V =  >1  THEN V = VL
  15. 245  IF V =  < -1  THEN V =  -VL
  16. 250 V1 =  ATN(V/ SQR( -V *V +1)) -T +3.1415927
  17. 255  REM  V1 IS THE ANGLE THAT THE PLANET LIES FROM THE SUN.  THE 0 POINT BEING AT THE RIGHT, INCREASING COUNTERCLOCKWISE.
  18. 260  IF D <SRD/2  THEN V1 = Q2 -V1
  19. 270 V1 = V1 +J
  20. 280 X =  COS(V1) *RV:Y =  - SIN(V1) *RV *FA
  21. 290 X = X *TT +X1:Y = Y *TT +Y1
  22. 300  RETURN 
  23. 900  REM  (1000)DISPLAY PRIMARY PAGE,SET TEXT MODE
  24. 1000  POKE  -16300,0: POKE  -16303,0
  25. 1010 T = 1.5708
  26. 1020 Q = 3.14159265
  27. 1030 Q2 = 6.2831853
  28. 1040 VL = .99999999
  29. 1050 FA = 29/32
  30. 1055  REM  FA IS THE RATIO OF X TO Y TO PLOT A CIRCLE AN THE APPLE INSTEAD OF AN OVAL
  31. 1060 X1 = 140:Y1 = 96
  32. 1700  HOME : PRINT : PRINT : PRINT : PRINT 
  33. 1800  PRINT "DO YOU WANT TO DISPLAY"
  34. 1810  PRINT : PRINT "THE SAME PLANETS AS YOUR LAST RUN"
  35. 1815  INPUT "Y OR N   ";A$
  36. 1820  PRINT : PRINT 
  37. 1830  IF A$ = "N"  THEN 2000
  38. 1840  IF A$ < >"Y"  THEN 1800
  39. 1850  IF S1 < >0  THEN 4000
  40. 1855  PRINT : PRINT 
  41. 1860  PRINT : PRINT "YOU HAVEN'T PICKED THE PLANETS YET"
  42. 1870  PRINT : PRINT : PRINT 
  43. 2000  PRINT "CHOOSE THE PLANETS YOU WANT TO DISPLAY"
  44. 2005  PRINT 
  45. 2010  PRINT "ENTER A 1 FOR YES AND A 0 FOR NO"
  46. 2011  PRINT 
  47. 2012  REM (2020-2079) GET SPECITIC VALUES FOR EACH PLANET
  48. 2013  REM   S1=ORBITAL PERIOD:P1=A1*(1-E1*E1)/2 
  49. 2014  REM  E1=ECCENTRICITY:U1=P1/E1:K1=1/E1
  50. 2015  REM  REM A1=MINIMUM AND MAXIMUM DISTANCE FROM THE SUN
  51. 2016  REM  J1=LONGITUDE OF PERIHELION IN RADIANS
  52. 2017  REM  W1=DAYS FRON 0 DEGREES TO PERIHELION FOR 1980
  53. 2018  REM  TT=SCALING FACTOR TO USE FULL PLOTTING AREA IF SELECTED PLANETS ARE DISPLAYED
  54. 2020  INPUT "DISPLAY MERCURY   ";ME
  55. 2021 S1 = 87.969
  56. 2022 E1 = .0167
  57. 2023 A1 = 43.403 +28.597
  58. 2024 P1 = A1 *(1 -E1 *E1)/2
  59. 2025 K1 = 1/E1
  60. 2026 U1 = P1/E1
  61. 2027 J1 = 77.1 *Q/180
  62. 2028 W1 = 37.58
  63. 2029  IF ME = 1  THEN TT = 2.3
  64. 2030  INPUT "DISPLAY VENUS    ";VE
  65. 2031 S2 = 224.701
  66. 2032 E2 = .0068
  67. 2033 A2 = 67.726 +66.813
  68. 2034 P2 = A2 *(1 -E2 *E2)/2
  69. 2035 K2 = 1/E2
  70. 2036 U2 = P2/E2
  71. 2037 J2 = 131.3 *Q/180
  72. 2038 W2 = 140.5
  73. 2039  IF VE = 1  THEN TT = 1.5
  74. 2040  INPUT "DISPLAY EARTH    ";EA
  75. 2041 S3 = 365.256
  76. 2042 E3 = .0167
  77. 2043 A3 = 94.555 +91.445
  78. 2044 P3 = A3 *(1 -E3 *E3)/2
  79. 2045 K3 = 1/E3
  80. 2046 U3 = P3/E3
  81. 2047 J3 = 102.6 *Q/180
  82. 2048 W3 =  -3
  83. 2049  IF EA = 1  THEN TT = 1.05
  84. 2050  INPUT "DISPLAY MARS    ";MA
  85. 2051 S4 = 686.980
  86. 2052 E4 = .0934
  87. 2053 A4 = 154.936 +128.471
  88. 2054 P4 = A4 *(1 -E4 *E4)/2
  89. 2055 K4 = 1/E4
  90. 2056 U4 = P4/E4
  91. 2057 J4 = 355.7 *Q/180
  92. 2058 W4 = 289
  93. 2059  IF MA = 1  THEN TT = .6
  94. 2060  INPUT "DISPLAY JUPITER  ";JU
  95. 2061 S5 = 4332.125
  96. 2062 E5 = .0478
  97. 2063 A5 = 507.046 +460.595
  98. 2064 P5 = A5 *(1 -E5 *E5)/2
  99. 2065 K5 = 1/E5
  100. 2066 U5 = P5/E5
  101. 2067 J5 = 13.6 *Q/180
  102. 2068 W5 = 1604
  103. 2069  IF JU = 1  THEN TT = .19
  104. 2070  INPUT "DISPLAY SATURN   ";SA
  105. 2071 S6 = 10825.863
  106. 2072 E6 = .0555
  107. 2073 A6 = 937.541 +838.425
  108. 2074 P6 = A6 *(1 -E6 *E6)/2
  109. 2075 K6 = 1/E6
  110. 2076 U6 = P6/E6
  111. 2077 J6 = 95.5 *Q/180
  112. 2078 W6 = 2115
  113. 2079  IF SA = 1  THEN TT = .1
  114. 3900  HOME : PRINT : PRINT 
  115. 4000  PRINT : PRINT "DO YOU WANT ": PRINT 
  116. 4010  INPUT "POINT (0) OR CONTINUOUS(1) PLOTS";TY
  117. 4015  IF TY < >0  AND TY < >1  THEN 4000
  118. 4020  PRINT : PRINT : PRINT 
  119. 4030  PRINT : PRINT "DO YOU WANT TO START AT": PRINT 
  120. 4040  PRINT "A SPECIFIC DATE (0)": PRINT 
  121. 4050  INPUT "OR THE BEGINNING OF THE YEAR (1) ";DT
  122. 4051  IF DT < >1  AND DT < >0  THEN 4020
  123. 4052  IF DT = 1  THEN 4060
  124. 4053  PRINT : PRINT : PRINT 
  125. 4054  INPUT "ENTER # OF DAYS SINCE JAN 0,1980 ";DE
  126. 4057 Z1 = DE
  127. 4060  PRINT : PRINT : INPUT "ENTER # OF DAYS TO PLOT ";DN
  128. 4070  PRINT : PRINT : PRINT 
  129. 4080  INPUT "ENTER # OF DAYS BETWEEN PLOTS ";DA
  130. 4082  IF DA < >0  THEN 4800
  131. 4084  PRINT : PRINT 
  132. 4086  PRINT "0 NOT ALLOWED": GOTO 4070
  133. 4090  REM  4800 INIT HIGH RES,FULL SCREEN, PAGE 2
  134. 4800  HGR2 
  135. 4802  REM  (4805-4860)PLOT REFERENCE POINTS AND OUTER 10 DEGREE CIRCLE
  136. 4805  HCOLOR= 3
  137. 4810 X = 140:Y = 96: GOSUB 100
  138. 4811 X = 141:Y = 96: GOSUB 100
  139. 4815 X = 248:Y = 96: GOSUB 100
  140. 4820  FOR L1 = 0 TO Q2  STEP 1/36 *Q2
  141. 4830 X = X1 + COS(L1) *105.9
  142. 4840 Y = Y1 - SIN(L1) *105.9 *FA
  143. 4850  GOSUB 100
  144. 4860  NEXT L1
  145. 4900  REM  (5100-5140)SET UP VALUES FOR MERCURY AND PLOT
  146. 5100  IF ME = 0  THEN 5200
  147. 5110 A = A1:P = P1:E = E1:PE = U1:EZ = K1:SRD = S1:J = J1:W = W1:Z = Z1 +W
  148. 5120  GOSUB 200:F1 = X:G1 = Y
  149. 5125  IF TY = 1  THEN 5140
  150. 5130 X = M1:Y = N1: HCOLOR= 0: GOSUB 100
  151. 5140 X = F1:Y = G1:M1 = X:N1 = Y: HCOLOR= 3: GOSUB 100
  152. 5190  REM  (5200 - 5240)SETUP VALUE FORVENUS AND  PLOT    
  153. 5200  IF VE = 0  THEN 5300
  154. 5210 A = A2:P = P2:E = E2:PE = U2:EZ = K2:SRD = S2:J = J2:W = W2:Z = Z1 +W
  155. 5220  GOSUB 200:F2 = X:G2 = Y
  156. 5225  IF TY = 1  THEN 5240
  157. 5230 X = M2:Y = N2: HCOLOR= 0: GOSUB 100
  158. 5240 X = F2:Y = G2:M2 = X:N2 = Y: HCOLOR= 3: GOSUB 100
  159. 5290  REM  (5200-5240) SET UP VALUES FOR EARTH AND PLOT 
  160. 5300  IF EA = 0  THEN 5400
  161. 5310 A = A3:P = P3:E = E3:PE = U3:EZ = K3:SRD = S3:J = J3:W = W3:Z = Z1 +W
  162. 5320  GOSUB 200:F3 = X:G3 = Y
  163. 5325  IF TY = 1  THEN 5340
  164. 5330 X = M3:Y = N3: HCOLOR= 0: GOSUB 100
  165. 5340 X = F3:Y = G3:M3 = X:N3 = Y: HCOLOR= 3: GOSUB 100
  166. 5390  REM  (5400-5440) SET UP VALUES FOR JUPITOR AND PLOT
  167. 5400  IF MA = 0  THEN 5500
  168. 5410 A = A4:P = P4::E = E4:PE = U4:EZ = K4:SRD = S4:J = J4:W = W4:Z = Z1 +W
  169. 5420  GOSUB 200:F4 = X:G4 = Y
  170. 5425  IF TY = 1  THEN 5440
  171. 5430 X = M4:Y = N4: HCOLOR= 0: GOSUB 100
  172. 5440 X = F4:Y = G4:M4 = X:N4 = Y: HCOLOR= 3: GOSUB 100
  173. 5490  REM  (5500-5540) SET UP VALUES FOR JUPITOR AND PLOT
  174. 5500  IF JU = 0  THEN 5600
  175. 5510 A = A5:P = P5:E = E5:PE = U5:EZ = K5:SRD = S5:J = J5:W = W5:Z = Z1 +W
  176. 5520  GOSUB 200:F5 = X:G5 = Y
  177. 5525  IF TY = 1  THEN 5540
  178. 5530 X = M5:Y = N5: HCOLOR= 0: GOSUB 100
  179. 5540 X = F5:Y = G5:M5 = X:N5 = Y: HCOLOR= 3: GOSUB 100
  180. 5590  REM   (5600-5640) SET UP VALUES FOR SATURN AND PLOT   
  181. 5600  IF SA = 0  THEN 6000
  182. 5610 A = A6:P = P6:E = E6:PE = U6:EZ = K6:SRD = S6:J = J6:W = W6:Z = Z1 +W
  183. 5620  GOSUB 200:F6 = X:G6 = Y
  184. 5625  IF TY = 1  THEN 5640
  185. 5630 X = M6:Y = N6: HCOLOR= 0: GOSUB 100
  186. 5640 X = F6:Y = G6:M6 = X:N6 = Y: HCOLOR= 3: GOSUB 100
  187. 6000 Z1 = Z1 +DA
  188. 6100  IF Z1 >DE +DN  THEN 7000
  189. 6200  GOTO 5100
  190. 7000 X = 279:Y = 190: GOSUB 100: INPUT A$
  191. 7050  TEXT : HOME :Z1 = 0:DE = 0
  192. 7100  VTAB (5)
  193. 7150  PRINT "WOULD YOU LIKE TO BEGIN THIS PROGRAM": PRINT "AGAIN?  Y OR N "
  194. 7200  INPUT S$
  195. 7250  IF S$ < >"N"  THEN 1000
  196. 7260  HOME : END 
  197. 30000 :::::::::::::::::::::::::::::::
  198. 30100  REM  BIG OUTER CIRCLE IS STARS
  199. 30101  REM  IN 10 DEGREE INTERVALS
  200. 30102  REM  VERNAL EQUINOX IS TO RIGHT
  201. 30103  REM  AT DOUBLE DOT. PLANETS 
  202. 30104  REM  REVOLVE COUNTERCLOCKWISE
  203. 30105  REM  THE SUN (DOT AT CENTER).
  204. 30106  REM  ORIGINAL PROGRAM FROM
  205. 30107  REM  MICRO APPLE 1 BY DAVID
  206. 30108  REM  PARTYKA. WE THINK THE 
  207. 30109  REM  BUGS ARE OUT OF THIS 
  208. 30110  REM  VERSION !#$%"#$%*:!